package a_erfenchazhao;

/**
 * @ClassName ZuoBiYouKai
 * @Description
 * @Author Zhang Li Tao
 * @Date 2024/3/9
 * @Version 1.0
 **/
public class B_ZuoBiYouKai {
    public static void main(String[] args) {
        int[] array = {0, 1, 2, 3, 4, 5, 6, 7, 8};
        int target = 2;

        int leftIndex = 0; // 左边界
        int rightIndex = array.length; // 右边界 最后一个索引不参与计算

        // 左闭右开 右边界不参与运算 只要leftIndex >= rightIndex就算检索完毕
        while (leftIndex < rightIndex) {
            int middleIndex = (leftIndex + rightIndex) >>> 1;

            if (target < array[middleIndex]) { // 左半部分
                rightIndex = middleIndex; // 左闭右开写法 这里不需要减去1
            } else if (array[middleIndex] < target) { // 右半部分
                leftIndex = middleIndex + 1;
            } else {
                System.out.println(middleIndex);
                return ;
            }
        }

        System.out.println(-1);
    }
}
